Apparatus and method for encoding three-dimensional (3d) mesh, and apparatus and method for decoding 3d mesh

ABSTRACT

An apparatus and method for encoding a 3D mesh, and an apparatus and method for decoding the 3D mesh are disclosed. The 3D mesh encoding apparatus may determine mesh information including position information of each of vertices constituting the 3D mesh, and connectivity information among the vertices, based on a level, and may progressively encode the determined mesh information based on the level, thereby reducing an error with an original 3D object when compared to an equal transmission rating.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/354,918, filed on Jan. 20, 2012, which is currently pending, andclaims the benefit under 35 U.S.C. §119(e) of U.S. ProvisionalApplication No. 61/434,905, filed on Jan. 21, 2011, in the U.S. Patentand Trademark Office, and under 35 U.S.C. §119(a) of Korean PatentApplication No. 10-2011-0050131, filed on May 26, 2011, in the KoreanIntellectual Property Office. The entire disclosures of U.S. patentapplication Ser. No. 13/354,918, U.S. Provisional Application No.61/434,905, and Korean Patent Application No. 10-2011-0050131 are herebyincorporated by reference.

BACKGROUND

1. Field

One or more example embodiments of the present disclosure relate to anapparatus and method for encoding and decoding a three-dimensional (3D)mesh of a 3D object.

2. Description of the Related Art

Generally, a 3-dimensional (3D) mesh used for restoring a 3D objectrequires a large storage space, a great amount of calculation, and awide transmission bandwidth. The 3D mesh is to be compressed through anencoding process in order to effectively transmit, store, and render the3D object.

When the 3D object is complex, the 3D mesh may also be configured in acomplex form, and all information constituting the 3D mesh needs to betransmitted to a decoding apparatus in order to restore the 3D object.This type of scheme is defined as a single bit rate compression scheme,for example, Single Rate Coding.

In the conventional single bit rate compression scheme, positioninformation of vertices, and connectivity information among the verticesare sequentially transmitted, and accordingly there is a problem in thata time delay occurs until all of the position information andconnectivity information is transmitted.

SUMMARY

The foregoing and/or other aspects are achieved by providing anapparatus for encoding a three-dimensional (3D) mesh, the apparatusincluding an information determination unit to determine meshinformation including connectivity information among verticesconstituting a 3D mesh, and position information of each of thevertices, based on a level, and a bit stream generation unit to generatea bit stream by encoding the mesh information that may be determinedbased on the level.

The information determination unit may determine mesh informationcorresponding to a current level, including connectivity informationabout at least one vertex to be added based on mesh informationcorresponding to a previous level.

The information determination unit may determine mesh informationcorresponding to a current level, including mapping information betweenvertices corresponding to the current level, and vertices correspondingto a previous level.

The bit stream generation unit may include a position informationprediction unit to predict position information of verticescorresponding to a current level, based on the position information ofvertices corresponding to a previous level, and an encoding unit toencode a prediction error corresponding to a difference between aprediction value and an actual value, in association with the positioninformation of the vertices corresponding to the current level.

The position information prediction unit may predict the positioninformation of the vertices corresponding to the current level, eitherbased on vertices adjacent to a vertex to be added to the current levelamong the vertices corresponding to the previous level, or based on allof the vertices corresponding to the previous level.

The foregoing and/or other aspects are achieved by providing a method ofencoding a 3D mesh, the method including determining mesh informationincluding connectivity information among vertices constituting a 3Dmesh, and position information of each of the vertices, based on alevel, and generating a bit stream by encoding the mesh information thatmay be determined based on the level.

The generating of the bit stream may include predicting positioninformation of vertices corresponding to a current level, based on theposition information of vertices corresponding to a previous level, andencoding a prediction error corresponding to a difference between aprediction value and an actual value, in association with the positioninformation of the vertices corresponding to the current level.

The foregoing and/or other aspects are achieved by providing anapparatus for decoding a 3D mesh, the apparatus including an informationextraction unit to extract, from a bit stream, mesh informationincluding connectivity information among vertices constituting a 3Dmesh, and position information of each of the vertices, based on alevel, and a 3D mesh restoration unit to restore the 3D mesh using theconnectivity information among the vertices and the position informationof each of the vertices, constituting the mesh information.

The 3D mesh restoration unit may include a position informationprediction unit to predict position information of the vertices byperforming an inverse transform on the position information of each ofthe vertices, and a decoding unit to restore the position information ofeach of the vertices based on the predicted position information and aprediction error.

The foregoing and/or other aspects are achieved by providing a method ofdecoding a 3D mesh, the method including extracting, from a bit stream,mesh information including connectivity information among verticesconstituting a 3D mesh, and position information of each of thevertices, based on a level, and restoring the 3D mesh using theconnectivity information among the vertices and the position informationof each of the vertices, constituting the mesh information.

The foregoing and/or other aspects are achieved by providing anon-transitory recording medium in which a bit stream may be stored, thebit stream including a header including mesh number informationindicating a number of pieces of mesh information that may be includedin compressed data, and data including the mesh information for eachlevel, the mesh information including connectivity information amongvertices constituting a 3D mesh and position information of each of thevertices.

The mesh information may further include a header of the positioninformation including position number information indicating a number ofpieces of the position information included in the mesh information, andthe position information may include a prediction error corresponding toa difference between a prediction value and an actual value, inassociation with the position information of vertices corresponding to acurrent level.

Additional aspects of embodiments will be set forth in part in thedescription which follows and, in part, will be apparent from thedescription, or may be learned by practice of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects will become apparent and more readilyappreciated from the following description of embodiments, taken inconjunction with the accompanying drawings of which:

FIG. 1 illustrates a configuration of an apparatus for encoding athree-dimensional (3D) mesh according to example embodiments;

FIG. 2 illustrates a configuration an apparatus for decoding a 3D meshaccording to example embodiments;

FIG. 3 illustrates a configuration of a bit stream generated byprogressively compressing a 3D mesh based on a level according toexample embodiments;

FIG. 4 illustrates position information of each vertex constituting a 3Dmesh, in bit plane units according to example embodiments;

FIG. 5 illustrates a process of encoding position information ofvertices constituting a 3D mesh, in bit plane units according to exampleembodiments;

FIG. 6 illustrates a method of progressively encoding mesh informationin the 3D mesh encoding apparatus of FIG. 1 according to exampleembodiments; and

FIG. 7 illustrates a method of restoring a 3D mesh in the 3D meshdecoding apparatus of FIG. 2 according to example embodiments.

DETAILED DESCRIPTION

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings, wherein like referencenumerals refer to the like elements throughout. Embodiments aredescribed below to explain the present disclosure by referring to thefigures.

FIG. 1 illustrates a configuration of an apparatus 100 for encoding athree-dimensional (3D) mesh 101 according to example embodiments.

Referring to FIG. 1, the 3D mesh encoding apparatus 100, which may be acomputer, may include an information determination unit 110, and a bitstream generation unit 120.

The information determination unit 110 may determine mesh informationincluding connectivity information among vertices constituting the 3Dmesh 101, and position information of each of the vertices, based on alevel. Here, the mesh information may be indicated using Spatial Levelof Details (S-LOD), and the position information may be indicated usingQuality Level of Details (Q-LOD).

Here, the position information of the vertices may be represented usinggeometric information which may indicate 3D coordinates for positions ofvertices constituting the 3D mesh 101. The connectivity information mayindicate types of vertices constituting a face formed by connecting thevertices.

In detail, the information determination unit 110 may classify 3D meshesbased on a level, for example, into meshes from a simple form of a meshto a detailed form of a mesh. The information determination unit 110 maydetermine mesh information of each of the classified meshes. In thisinstance, since a number of vertices constituting a 3D meshcorresponding to a lower level may be less than a number of verticesconstituting a 3D mesh corresponding to an upper level, the 3D meshcorresponding to the lower level may display a form simpler than the 3Dmesh corresponding to the upper level displays. That is, the 3D meshcorresponding to the upper level may display a form more similar to anoriginal 3D object, than the 3D mesh corresponding to the lower level.

As an example, the information determination unit 110 may determineconnectivity information and position information related to a base meshof the 3D mesh as a level 0. Here, the base mesh may correspond to a 3Dmesh corresponding to a lowermost level, and may indicate a simplestform in which a face may be formed by connecting vertices. Theinformation determination unit 110 may determine, for each of the otherlevels, position information and connectivity information about at leastone vertex to be added to mesh information corresponding to a currentlevel, based on mesh information corresponding to a previous level. Ascheme of determining connectivity information between a vertex to beadded and the other vertices may be referred to as a refinement scheme.

Further to this example, it may be assumed that the base meshcorresponding to the level 0 is a triangle including three vertices, anda 3D mesh corresponding to a level 1 is a triangular pyramid includingfour vertices. In the case of level 0, the information determinationunit 110 may determine connectivity information related to the threevertices constituting the triangle, and position information of each ofthe three vertices. In the case of level 1, the informationdetermination unit 110 may determine connectivity information between asingle vertex added to the vertices displayed at the level 0, and theother three vertices, and position information of the four vertices.

As another example, the information determination unit 110 may determinemesh information corresponding to a current level, including mappinginformation between vertices corresponding to the current level, andvertices corresponding to a previous level, based on a level. Forexample, when the previous level corresponds to a base mesh, theinformation determination unit 110 may determine the mapping informationindicating whether there is a vertex, among the vertices correspondingto the current level, corresponding to vertices constituting the basemesh.

Further to this example, it may be assumed that the base meshcorresponding to the level 0 is a triangle including three vertices, anda 3D mesh corresponding to a level 1 is a triangular pyramid includingfour vertices. In the case of level 0, the information determinationunit 110 may determine connectivity information related to the threevertices constituting the triangle, and position information of each ofthe three vertices. In the case of level 1, the informationdetermination unit 110 may determine mapping information about each ofvertices corresponding to the level 1 which may correspond to thevertices displayed at the level 0. Also, the information determinationunit 110 may determine connectivity information among the four verticescorresponding to the level 1, to be independent from one another. Thatis, at the level 1, the information determination unit 110 may determinethe connectivity information between a vertex 1 and the other threevertices, the connectivity information between a vertex 2 and the otherthree vertices, the connectivity information between a vertex 3 and theother three vertices, and the connectivity information between a vertex4 and the other three vertices, to be independent from one another.

The bit stream generation unit 120 may generate the bit stream 102 byencoding the mesh information determined, based on the level. In thisinstance, the bit stream generation unit 120 may encode the base meshusing Single Rate Coding, and may progressively encode at least one meshcorresponding to other levels, rather than the base mesh, based on thelevel.

The bit stream generation unit 120 may include a position informationprediction unit 121, and an encoding unit 122.

The position information prediction unit 121 may predict the positioninformation of the vertices corresponding to the current level, based onthe position information of the vertices corresponding to the previouslevel.

As an example, the position information prediction unit 121 may predictthe position information of the vertices corresponding to the currentlevel, based on some vertices adjacent to a vertex to be added to thecurrent level among the vertices corresponding to the previous level.Although a prediction error may increase, an amount of calculation maybe reduced by predicting the position information of the vertices basedon the some vertices.

As another example, the position information prediction unit 121 maypredict the position information of the vertices corresponding to thecurrent level, based on all of the vertices corresponding to theprevious level. Although, an amount of calculation may increase aprediction error may be reduced by predicting the position informationof the vertices based on all of the vertices corresponding to theprevious level.

The encoding unit 122 may encode the prediction error corresponding to adifference between a prediction value and an actual value, inassociation with the position information of the vertices correspondingto the current level. The prediction value associated with the positioninformation of the vertices corresponding to the current level maycorrespond to a value numerically expressing the position information ofthe vertices corresponding to the current level, predicted by theposition information prediction unit 121. The actual value associatedwith the position information of the vertices corresponding to thecurrent level may correspond to a value numerically expressingcoordinates for actual positions of the vertices corresponding to thecurrent level.

In this instance, the encoding unit 122 may sequentially encode theposition information corresponding to the current level, in bit planeunits. As an example, the encoding unit 1222 may sequentially encode aprediction error associated with the position information correspondingto the current level, in bit plane units. As another example, theencoding unit 122 may sequentially encode an actual value associatedwith the position information corresponding to the current level, in bitplane units.

For example, position information of each of the vertices constitutingthe 3D mesh corresponding to the current level may include n bits. Theencoding unit 122 may encode the position information of the verticescorresponding to the current level, in sequential order starting from abit plane corresponding to the Most Significant Bit (MSB) to a bit planecorresponding to the Least Significant Bit (LSB).

The encoding unit 122 may transmit the bit plane corresponding to theMSB first, and then the bit plane corresponding to the LSB, to a 3D meshdecoding apparatus, and accordingly may progressively transmit 3Dposition information of vertices. In a case of a bit plane close to theMSB, when the position information is encoded in bit plane units, a bitindicating the position information corresponding to the current levelmay correspond to a value of “0” in a majority of cases, and accordinglycompression efficiency may be improved.

FIG. 2 illustrates a configuration an apparatus 200 for decoding a 3Dmesh 202 according to example embodiments.

Referring to FIG. 2, the 3D mesh decoding apparatus 200, which may be acomputer, may include an information extraction unit 210, and a 3D meshrestoration unit 230.

The information extraction unit 210 may receive a bit stream from a 3Dmesh encoding apparatus 100 of FIG. 1, and may extract mesh informationincluding connectivity information among vertices constituting the 3Dmesh 202, and position information of each of the vertices.

As described with reference to FIG. 1, the mesh information may includeconnectivity information determined according to a refinement scheme,and may also include connectivity information determined according to amapping information scheme. That is, the mesh information may includeconnectivity information about at least one vertex to be added based onmesh information corresponding to a previous level, and may also includemapping information between the vertices corresponding to the currentlevel, and the vertices corresponding to the previous level, andconnectivity information among the vertices corresponding to the currentlevel.

The 3D mesh restoration unit 220 may restore the 3D mesh 202 using theconnectivity information among the vertices constituting the meshinformation extracted based on the level, and the position informationof each of the vertices. In this instance, a 3D mesh similar to anoriginal 3D object may be restored by progressively forming a 3D mesh,starting from a 3D mesh in a simple form, that is, a lower level, to a3D mesh in a complex form, that is, an upper level. The 3D meshrestoration unit 220 may restore the 3D object by applying featureinformation including color, a perpendicular direction, reflection rate,and the like, to the 3D mesh. The 3D mesh restoration unit 220 maydecode with priority the connectivity information indicating a relationamong the vertices rather than the position information of each of thevertices. The 3D mesh restoration unit 220 may decode the connectivityinformation in sequential order starting from the lower lever to theupper level.

That is, the 3D mesh restoration unit 220 may include a positioninformation prediction unit 221, and a decoding unit 222. The positioninformation prediction unit 221 may predict the position information ofthe vertices by performing an inverse transform on the positioninformation of each of the vertices, included in the mesh information.The decoding unit 222 may restore a prediction error by decoding the bitstream. The decoding unit 222 may restore the position information ofeach of the vertices, using the predicted position information and therestored prediction error.

As an example, the position information of each of the vertices,included in the mesh information, may correspond to 3D information orposition information in a predetermined space, and may have a coordinatevalue. The position information prediction unit 221 may acquire a 3Dcoordinate value by performing a Karhunen-Loève (KL) inverse transformon the coordinate value related to the position information of each ofthe vertices. In this instance, the position information prediction unit221 may divide the 3D mesh 202 into a plurality of segments, and mayacquire a 3D coordinate value for each segment by performing the KLinverse transform on each of the divided segments. That is, the positioninformation prediction unit 221 may predict the position information ofeach of the vertices, having a 3D coordinate value.

The decoding unit 222 may restore the position information of the atleast one vertex to be added to the current level, by summing the 3Dcoordinate value obtained for each segment, and the prediction error.That is, the decoding unit 222 may restore an actual value related tothe position information corresponding to the current level using theprediction error.

In this instance, the decoding unit 222 may restore the positioninformation of each of the vertices corresponding to the current level,using mesh interpolation. When a plurality of vertices are added to thecurrent level based on a previous level, the decoding unit 222 maydetermine a sequence of adding each vertex to the 3D mesh based on animportance of the vertices to be added. Here, the decoding unit 222 mayrestore the 3D position coordinates by quantizing the positioninformation of the restored vertices.

In FIG. 2, the 3D mesh decoding apparatus to restore a 3D mesh using aprediction error when the 3D mesh encoding apparatus encodes andtransmits the prediction error has been described. In this instance,when the 3D mesh encoding apparatus encodes and transmits an actualvalue related to position information corresponding to the currentlevel, the 3D mesh decoding apparatus may restore the actual valuerelated to the position information corresponding to the current level,by decoding the position information corresponding to the current level.

FIG. 3 illustrates a configuration of a bit stream generated byprogressively compressing a 3D mesh based on a level according toexample embodiments.

Referring to FIG. 3, the bit stream may include a header 301 andcompressed data 302. The header 301 may include mesh number informationindicating a number of pieces of mesh information included in thecompressed data 302.

The compressed data 302 may include a plurality of pieces of meshinformation determined, based on a level. The mesh information mayinclude a base mesh 303 corresponding to a lowermost level 0, and meshinformation corresponding to an upper level, including connectivityinformation which may progressively have a complex form to becoterminous with original data. The base mesh 303 may correspond to thelowermost level 0, and may be a mesh having a form in which a face maybe formed using a minimum number of vertices.

Mesh information 304 may include a header 305 of position information,connectivity information 306, and position information 307 about each ofthe vertices constituting the 3D mesh. The header 305 of the positioninformation may include position number information indicating a numberof pieces of position information included in the mesh information, andinformation indicating a scheme used for determining connectivityinformation among the vertices, among a refinement scheme or a mappinginformation scheme. The connectivity information 306 may includeconnectivity information indicating connectivity among the verticescorresponding to the current level.

As an example, in the case of a refinement scheme, the connectivityinformation 306 may include connectivity information between at leastone vertex to be added to the current level based on a previous level,and other vertices. For example, it may be assumed that a 3D meshcorresponding to a level 0 may include vertices v1, v2, v3, and v4, anda 3D mesh corresponding to a level 1 may include vertices v1, v2, v3,v4, and v5. The connectivity information corresponding to the level 1may include connectivity between the vertex v5 and the other vertices v1through v4. Here, the vertex v5 may be additionally used for restoringthe 3D mesh corresponding to the level 1 based on the level 0. That is,the number of vertices indicated based on the level, and theconnectivity information may be different from each other.

As another example, in the case of a mapping information scheme, theconnectivity information 306 may include connectivity information amongall of the vertices corresponding to the current level, and mappinginformation between vertices corresponding to the current level, whichmay correspond to vertices corresponding to the previous level. Forexample, it may be assumed that a 3D mesh corresponding to a level 0 mayinclude vertices v1, v2, v3, and v4, and a 3D mesh corresponding to alevel 1 may include vertices v1, v2, v3, v4, and v5. The connectivityinformation corresponding to the level 1 may independently includeconnectivity between the vertex v1 and the other vertices v2 through v5,connectivity between the vertex v2 and the other vertices v1, and v3through v5, connectivity between the vertex v3 and the other vertices v1and v2, and v4 and v5, connectivity between the vertex v4 and the othervertices v1 through v3, and v5, and connectivity between the vertex v5and the other vertices v1 through v4, corresponding to the level 1. Inthis instance, the connectivity information corresponding to the level 1may further include mapping information between the verticescorresponding to level 1, which may correspond to the verticescorresponding to the level 0.

The position information 307 may include a data header 308, and positiondata 309. For example, the position data 309 may include a predictionerror corresponding to a difference between a prediction value and anactual value, in association with the position information of thevertices corresponding to the current level. The data header 308 mayinclude a quantization bit, a number of pieces of position informationof the vertices, and the like. In this instance, the actual value orprediction value of the vertices may be divided into multiple LODs to bestored.

FIG. 4 illustrates position information of each vertex constituting a 3Dmesh, in bit plane units according to example embodiments.

Referring to FIG. 4, position information of vertices constituting the3D mesh may be indicated for each bit plane. In this instance, each ofthe vertices may correspond to v₁ through v_(i), and may be indicatedusing a bit value that may be classified into the MSB and the LSB. InFIG. 4, the bit plane may include bit values corresponding to each ofthe vertices constituting the 3D mesh. The 3D mesh encoding apparatusmay encode the position information of the vertices corresponding to thecurrent level, in sequential order, starting from a bit planecorresponding to the MSB (Most Significant B.t) to a bit planecorresponding to the LSB (Least Significant B.t).

As aforementioned, the number of vertices indicated based on the levelmay vary. When a 3D mesh corresponding to a level 0 includes fourvertices, the bit plane may include four vertices. When a 3D meshcorresponding to a level 1 includes six vertices, the bit plane mayinclude two vertices. Accordingly, the 3D mesh encoding apparatus mayprogressively transmit 3D position information of each of the verticesby transmitting the MSB first, and then the LSB. When the positioninformation is close to the MSB, the majority of bits may have a valueof “0”, and accordingly the 3D mesh encoding apparatus may improvecompression efficiency by encoding the position information insequential order, starting from the MSB to the LSB.

FIG. 5 illustrates a process of encoding position information ofvertices constituting a 3D mesh, in bit plane units according to exampleembodiments.

FIG. 5 shows a bit plane where nine vertices are indicated in 5-bits.The position information of each of the vertices may be indicated usingbits, from MSB to LSB, and may be encoded based on a raster scan order.In this instance, an important portion of the position information ofthe vertices may be determined by the MSB. Accordingly, importance foreach bit plane in relation to the position information of the verticesof 3D mesh may be higher when the position information is closer to theMSB, rather than the LSB.

Referring to FIG. 5, the 3D encoding apparatus may classify bit planesusing clusters, with a position where the MSB may initially correspondto 1 as the center, in order to increase encoding efficiency of theposition information of the vertices. A probability that all of bits ina first cluster, excluding a boundary with a second cluster, may have 0bits may be high, and accordingly the encoding efficiency may beimproved.

The bits in the first cluster may have a high probability of having 0bits when close to the MSB, and accordingly the bits in the firstcluster may be classified into m classes based on the bit plane.Accordingly, the bits in the first cluster may be encoded based on theclasses. When the bit plane is encoded based on the cluster using theaforementioned characteristic, the bits in the first cluster may beminimized and encoded.

FIG. 6 illustrates a method of progressively encoding mesh informationin the 3D mesh encoding apparatus 100 of FIG. 1 according to exampleembodiments.

Referring to FIG. 6, in operation 601, the 3D mesh encoding apparatus100 may determine mesh information about a 3D mesh corresponding to a 3Dobject, based on a level. The mesh information may include connectivityinformation among vertices constituting the 3D mesh, and positioninformation of each of the vertices. In this instance, the 3D meshencoding apparatus 100 may determine the mesh information using arefinement scheme or a mapping information scheme. The informationindicating the scheme used for determining the mesh information may beincluded in a header of the mesh information.

As an example, in the case of a refinement scheme, the 3D mesh encodingapparatus 100 may determine mesh information corresponding to a currentlevel, including connectivity information about at least one vertex tobe added based on mesh information corresponding to a previous level.

As another example, in the case of a mapping information scheme, the 3Dmesh encoding apparatus 100 may determine the mesh informationcorresponding to the current level, including mapping informationbetween vertices corresponding to the current level, and verticescorresponding to the previous level. The mapping information may referto information indicating an association among vertices located in aposition corresponding to the vertices corresponding to the previouslevel, among the vertices corresponding to the current level.

In this instance, the 3D mesh encoding apparatus 100 may determine themesh information independently and include connectivity informationamong the vertices corresponding to the current level, for each vertex.

In operation 602, the 3D mesh encoding apparatus 100 may generate a bitstream by encoding the mesh information.

In this instance, the 3D mesh encoding apparatus 100 may encode meshinformation about a base mesh corresponding to a level 0 using SingleRate Coding, and may progressively encode mesh information correspondingto the other levels, rather than the level 0, in bit plane units.

That is, the 3D mesh encoding apparatus 100 may predict the positioninformation of the vertices corresponding to the current level, usingthe position information of the vertices corresponding to the previouslevel. The 3D mesh encoding apparatus 100 may calculate a predictionerror corresponding to a difference between a prediction value and anactual value, in association with the position information of thevertices corresponding to the current level. The 3D mesh encodingapparatus 100 may transmit the prediction error to the 3D mesh decodingapparatus 200, by progressively encoding the prediction error in bitplane units. For example, the 3D mesh encoding apparatus 100 may encodethe position information of the vertices corresponding to the currentlevel, in sequential order starting from a bit plane corresponding tothe MSB to a bit plane corresponding to the LSB.

FIG. 7 illustrates a method of restoring a 3D mesh in the 3D meshdecoding apparatus 200 of FIG. 2 according to example embodiments.

Referring to FIG. 7, in operation 701, the 3D mesh decoding apparatus200 may extract, from a bit stream, mesh information determined based ona level. The mesh information may include connectivity information amongvertices constituting the 3D mesh, and position information of each ofthe vertices. In this instance, a header of the mesh information mayinclude information indicating whether a scheme used for determining themesh information based on the level corresponding to a refinement schemeor a mapping information scheme. When the mesh information is determinedusing the mapping information scheme, the mesh information may furtherinclude mapping information.

In operation 702, the 3D mesh decoding apparatus 200 may restore the 3Dmesh using the connectivity information among the vertices constitutingthe mesh information, and the position information of each of thevertices.

As an example, the 3D mesh decoding apparatus 200 may predict theposition information of the vertices by performing an inverse transformon the position information of each of the vertices. In this instance,the 3D mesh decoding apparatus may predict the position information ofeach of the vertices corresponding to a current level, by performing theKarhunen-Loève (KL) inverse transform on the position information ofeach of the vertices corresponding to a previous level. The 3D meshdecoding apparatus 200 may restore the 3D mesh by summing the predictedposition information and a restored prediction error. The 3D meshdecoding apparatus 200 may restore a 3D object corresponding to the 3Dmesh.

According to example embodiments, an original 3D object may be restoredusing little information by applying a progressive encoding scheme thatmay simplify a 3D mesh based on a level, and may encode the 3D mesh inorder, starting from a simple mesh corresponding to a low level to acomplex mesh corresponding to a high level.

Also, a data compression rate may be improved by progressively encodingposition information and connectivity information about vertices of the3D mesh.

The methods according to the above-described embodiments may be recordedin non-transitory, computer-readable media including programinstructions to implement various operations embodied or executed by acomputer. The media may also include, alone or in combination with theprogram instructions, data files, data structures, and the like.Examples of non-transitory, computer-readable media include magneticmedia such as hard disks, floppy disks, and magnetic tape; optical mediasuch as CD ROM discs and DVDs; magneto-optical media such as opticaldiscs; and hardware devices that are specially configured to store andperform program instructions, such as read-only memory (ROM), randomaccess memory (RAM), flash memory, and the like.

Examples of program instructions include both machine code, such asproduced by a compiler, and files containing higher level code that maybe executed by the computer using an interpreter. The described hardwaredevices may be configured to act as one or more software modules inorder to perform the operations of the above-described embodiments, orvice versa. Any one or more of the software modules or units describedherein may be executed by a dedicated processor unique to that unit orby a processor common to one or more of the modules. The describedmethods may be executed on a general purpose computer or processor ormay be executed on a particular machine such as the display apparatusesdescribed herein.

Although embodiments have been shown and described, it would beappreciated by those skilled in the art that changes may be made inthese embodiments without departing from the principles and spirit ofthe disclosure, the scope of which is defined by the claims and theirequivalents.

What is claimed is:
 1. An apparatus for encoding a three-dimensional(3D) mesh, the apparatus comprising: an information determination unitto determine mesh information comprising connectivity information amongvertices constituting a 3D mesh, and position information of each of thevertices, based on a level; and a bit stream generation unit to generatea bit stream by encoding the mesh information that is determined basedon the level.
 2. The apparatus of claim 1, wherein the informationdetermination unit determines mesh information corresponding to acurrent level, comprising connectivity information about at least onevertex to be added based on mesh information corresponding to a previouslevel.
 3. The apparatus of claim 1, wherein the informationdetermination unit determines mesh information corresponding to acurrent level, comprising mapping information between verticescorresponding to the current level, and vertices corresponding to aprevious level.
 4. The apparatus of claim 1, wherein the bit streamgeneration unit comprises: a position information prediction unit topredict position information of vertices corresponding to a currentlevel, based on the position information of vertices corresponding to aprevious level; and an encoding unit to encode a prediction errorcorresponding to a difference between a prediction value and an actualvalue, in association with the position information of the verticescorresponding to the current level.
 5. The apparatus of claim 4, whereinthe position information prediction unit predicts the positioninformation of the vertices corresponding to the current level, eitherbased on vertices adjacent to a vertex to be added to the current levelamong the vertices corresponding to the previous level, or based on allof the vertices corresponding to the previous level.
 6. The apparatus ofclaim 4, wherein the encoding unit sequentially encodes the positioninformation of the vertices corresponding to the current level, in bitplane units.
 7. The apparatus of claim 6, wherein the encoding unitencodes the position information of the vertices corresponding to thecurrent level, in sequential order starting from a bit planecorresponding to the Most Significant Bit (MSB) to a bit planecorresponding to the Least Significant Bit (LSB).
 8. A method ofencoding a three-dimensional (3D) mesh, the method comprising:determining mesh information comprising connectivity information amongvertices constituting a 3D mesh, and position information of each of thevertices, based on a level; and generating a bit stream by encoding themesh information that is determined based on the level.
 9. The method ofclaim 8, wherein the determining comprises determining mesh informationcorresponding to a current level, comprising connectivity informationabout at least one vertex to be added based on mesh informationcorresponding to a previous level.
 10. The method of claim 8, whereinthe determining comprises determining mesh information corresponding toa current level, comprising mapping information between verticescorresponding to the current level and vertices corresponding to aprevious level.
 11. The method of claim 8, wherein the generatingcomprises: predicting position information of vertices corresponding toa current level, based on the position information of verticescorresponding to a previous level; and encoding a prediction errorcorresponding to a difference between a prediction value and an actualvalue, in association with the position information of the verticescorresponding to the current level.
 12. The method of claim 11, whereinthe predicting comprises predicting the position information of thevertices corresponding to the current level, either based on verticesadjacent to a vertex to be added to the current level, among thevertices corresponding to the previous level, or based on all of thevertices corresponding to the previous level.
 13. The method of claim11, wherein the encoding comprises sequentially encoding the positioninformation of the vertices corresponding to the current level, in bitplane units.
 14. The method of claim 13, wherein the encoding comprisesencoding the position information of the vertices corresponding to thecurrent level, in sequential order starting from a bit planecorresponding to the Most Significant Bit (MSB) to a bit planecorresponding to the Least Significant Bit (LSB).
 15. An apparatus fordecoding a three-dimensional (3D) mesh, the apparatus comprising: aninformation extraction unit to extract, from a bit stream, meshinformation comprising connectivity information among verticesconstituting a 3D mesh, and position information of each of thevertices, based on a level; and a 3D mesh restoration unit to restorethe 3D mesh using the connectivity information among the vertices andthe position information of each of the vertices, constituting the meshinformation.
 16. The apparatus of claim 15, wherein the mesh informationcomprises connectivity information about at least one vertex to be addedbased on mesh information corresponding to a previous level.
 17. Theapparatus of claim 15, wherein the mesh information comprises mappinginformation between vertices corresponding to a current level andvertices corresponding to a previous level, and connectivity informationamong the vertices corresponding to the current level.
 18. The apparatusof claim 15, wherein the 3D mesh restoration unit comprises: a positioninformation prediction unit to predict position information of thevertices by performing an inverse transform on the position informationof each of the vertices; and a decoding unit to restore the positioninformation of each of the vertices based on the predicted positioninformation and a prediction error.
 19. The apparatus of claim 18,wherein the position information prediction unit segments the 3D meshinto a plurality of areas, and predicts the position information of thevertices by performing the Karhunen-Loève inverse transform for each ofthe segmented areas.
 20. A method of decoding a three-dimensional (3D)mesh, the method comprising: extracting, from a bit stream, meshinformation comprising connectivity information among verticesconstituting a 3D mesh, and position information of each of thevertices, based on a level; and restoring the 3D mesh using theconnectivity information among the vertices and the position informationof each of the vertices, constituting the mesh information.
 21. Anon-transitory recording medium in which a bit stream is stored, whereinthe bit stream comprises: a header comprising mesh number informationindicating a number of pieces of mesh information that is included incompressed data; and data comprising the mesh information for eachlevel, the mesh information comprising connectivity information amongvertices constituting a three-dimensional (3D) mesh and positioninformation of each of the vertices.
 22. The medium of claim 21, whereinthe mesh information further comprises a header of the positioninformation comprising position number information indicating a numberof pieces of the position information included in the mesh information,and the position information comprises a prediction error correspondingto a difference between a prediction value and an actual value, inassociation with the position information of vertices corresponding to acurrent level.
 23. A method as recited in claim 8, wherein the encodingprogresses from a simple mesh to a complex mesh.
 24. A method ofencoding a three-dimensional (3D) mesh, the method comprising:identifying mesh information comprising connectivity information forvertices of the mesh and position information of each of the verticesresponsive to mesh complexity level progressing from a simple mesh to acomplex mesh; and generating a bit stream by encoding the meshinformation identified responsive to the level.